Structured text files, e.g. the files that are typically used to store configuration data on Unix-style machines, often need to be modified by other programs. For many of them, no tool that can exploit the structure of these files is readily available, even though, given that they can be described by a formal grammar, it is possible to map the contents of such files into a data structure more amenable to accessing from programs than just flat text files.
Even though there is a wealth of structured text files in common use and even though they can readily be described with a formal grammar to aid further processing, such grammars are generally not available. It is often quite feasible to reverse-engineer such a grammar, but lacking generic tools to process files described by a reverse-engineered grammar into a simple data structure, the effort usually outweighs the benefits.